"""

    文件描述：初始化扩展插件
    作者：xfree
    邮箱：cy_83k@qq.com
    版本：1.0.0
"""
import importlib
from flask import Flask
import os
from celery import Celery


def load_extensions(app: Flask) -> None:
    """自动加载当前文件夹中的所有 init_*.py 文件中的函数"""
    def process_folder(folder_path):
        """递归处理文件夹中的所有文件"""
        # 获取文件夹中的所有文件
        files = os.listdir(folder_path)
        # 遍历所有文件
        for file_name in files:
            # 拼接文件的完整路径
            full_path = os.path.join(folder_path, file_name)
            # 检查文件是否是文件夹
            if os.path.isdir(full_path):
                # 如果是文件夹，递归处理
                process_folder(full_path)
            # 检查文件是否以 init_ 开头且是 Python 文件
            elif file_name.startswith('init_') and file_name.endswith('.py'):
                # 获取模块名
                module_name = file_name[:-3]
                # 打印模块名
                print(module_name)
                try:
                    # 导入模块
                    module = importlib.import_module(module_name)
                    # 获取与文件同名的函数
                    function_name = module_name[5:]
                    # 检查模块中是否存在与文件同名的函数
                    function = getattr(module, function_name)
                    print(function.name)
                    # # 调用函数
                    # function(app)
                except AttributeError:
                    # 如果模块中没有找到与文件同名的函数，打印错误信息
                    print(f"模块 '{module_name}' 中没有找到与文件同名的函数 '{function_name}。'")

    # 从当前文件夹开始处理
    process_folder(os.path.dirname(__file__))

if __name__ == '__main__':
    app=Flask(__name__)
    load_extensions(app)

